package com.fowo.api.model.receipt.product;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 收货单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class ReceiptProductImportPo {

  /** 商品 */
  @ExcelProperty("商品")
  @Size(max = 500, message = "商品长度不能超过500")
  private String productIdName;

  /** 商品名 */
  @ExcelProperty("商品名")
  @Size(max = 50, message = "商品名长度不能超过50")
  private String productName;

  /** sku */
  @ExcelProperty("sku")
  @Size(max = 50, message = "sku长度不能超过50")
  private String sku;

  /** 产品标签 */
  @ExcelProperty("产品标签")
  @Size(max = 50, message = "产品标签长度不能超过50")
  private String productTags;

  /** fnsku */
  @ExcelProperty("fnsku")
  @Size(max = 50, message = "fnsku长度不能超过50")
  private String fnsku;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String shopIdShopName;

  /** 店铺名 */
  @ExcelProperty("店铺名")
  @Size(max = 50, message = "店铺名长度不能超过50")
  private String shopName;

  /** 所属收货单 */
  @ExcelProperty("所属收货单")
  private String parentReceiptOrderSn;

  /** 采购量 */
  @ExcelProperty("采购量")
  @LongString(message = "采购量数值格式不正确", label = "采购量")
  private String purchaseNum;

  /** 待到货量 */
  @ExcelProperty("待到货量")
  @IntegerString(
    message = "待到货量数值格式不正确",
    label = "待到货量",
    min = 0
  )
  private String waitNum;

  /** 已通知量 */
  @ExcelProperty("已通知量")
  @IntegerString(
    message = "已通知量数值格式不正确",
    label = "已通知量",
    min = 0
  )
  private String notifiedNum;

  /** 未通知量 */
  @ExcelProperty("未通知量")
  @IntegerString(
    message = "未通知量数值格式不正确",
    label = "未通知量",
    min = 0
  )
  private String notNotifiedNum;

  /** 通知收货量 */
  @ExcelProperty("*通知收货量")
  @NotBlank(message = "通知收货量不能为空")
  @IntegerString(
    message = "通知收货量数值格式不正确",
    label = "通知收货量",
    min = 0
  )
  private String noticeReceiptNum;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remarks;

  /** 收货量 */
  @ExcelProperty("收货量")
  @LongString(message = "收货量数值格式不正确", label = "收货量")
  private String receiptNum;

  /** 待检量 */
  @ExcelProperty("待检量")
  @LongString(message = "待检量数值格式不正确", label = "待检量")
  private String noQcNum;

  /** 未检量 */
  @ExcelProperty("未检量")
  @LongString(message = "未检量数值格式不正确", label = "未检量")
  private String lowQuality;

  /** 质检中 */
  @ExcelProperty("质检中")
  @LongString(message = "质检中数值格式不正确", label = "质检中")
  private String reflecti;

  /** 已验量 */
  @ExcelProperty("已验量")
  @LongString(message = "已验量数值格式不正确", label = "已验量")
  private String testedQuantity;

  /** 可用量 */
  @ExcelProperty("可用量")
  @LongString(message = "可用量数值格式不正确", label = "可用量")
  private String productGoodNum;

  /** 次品量 */
  @ExcelProperty("次品量")
  @LongString(message = "次品量数值格式不正确", label = "次品量")
  private String productBadNum;

  /** 质检状态 */
  @ExcelProperty("质检状态")
  @EnumsString(
    value = { "未质检", "部分质检", " 完成质检" },
    message = "质检状态只能是“未质检”, “部分质检”, “ 完成质检”中的一个"
  )
  private String qcStatus;

  /** 质检单 */
  @ExcelProperty("质检单")
  private String qsMessageQcSn;

  /** 产品备注 */
  @ExcelProperty("产品备注")
  @Size(max = 50, message = "产品备注长度不能超过50")
  private String extraInfo;

  /** 源表勾稽字段 */
  @ExcelProperty("源表勾稽字段")
  @LongString(message = "源表勾稽字段数值格式不正确", label = "源表勾稽字段")
  private String crossQty;

  /** 本次质检量 */
  @ExcelProperty("本次质检量")
  @LongString(message = "本次质检量数值格式不正确", label = "本次质检量")
  private String quantityInspection;

  /** 收货单id */
  @ExcelProperty("收货单id")
  @LongString(message = "收货单id数值格式不正确", label = "收货单id")
  private String receiptId;
}
